Not applicable.
Not applicable.
The present invention relates generally to docking of personal computer systems and particularly to a bus bridge that facilitates xe2x80x9chotxe2x80x9d docking. More particularly, the present invention relates to an enhanced expansion bus bridge for attaching a computer system to a docking station without requiring the computer system to shut down or enter sleep mode during the docking sequence.
Many portable computer systems are capable of connecting to a docking station, or an expansion base. The docking station is not actually a part of the portable computer system per se, but instead comprises a separate unit that accommodates the computer. The portable computer electrically connects to the docking station usually by way of an expansion bus, such as a Peripheral Component Interconnect (PCI) or other suitable bus. Because of inherent size and weight restrictions, portable computers tend to require design tradeoffs such as small keyboards and graphics displays, crude cursor control devices, and a limited number of mass storage devices. The docking station (or simply xe2x80x9cdockxe2x80x9d) usually couples to peripheral devices, such as a CD ROM drive, a standard size keyboard, and a large monitor and thus converts the portable computer into a desktop system. Accordingly, the computer user can access valuable features such as additional peripheral components including a large graphics display, a full-size mouse and keyboard, hard and floppy disk drives, CD ROM drives, Digital Video Disc (DVD) drives, and other peripheral components. An expansion base may also offer connections to a local area network (LAN), printer, and modem. Although intended primarily for desktop operation, the utilization of expansion bases has greatly enhanced the usability and comfort of laptop computer systems, handheld computers, and other portable systems, especially when the computer is used frequently in one location, such as in the home or office.
When the portable computer is docked, an expansion bus within the computer typically couples to an expansion bus in the docking station. The expansion bus permits communication (e.g., data transfers) between the computer and a peripheral device in the docking station. Because of the delicate nature of high performance expansion buses such as the PCI bus, care must be taken when designing a docking system and implementing the docking procedure to connect two PCI buses. One factor to consider is that a single expansion bus often can only support a limited number of components. Suddenly xe2x80x9cloadingxe2x80x9d an expansion bus with too many components may severely degrade performance or crash the bus. To facilitate docking in portable computer systems, bus xe2x80x9cbridgexe2x80x9d devices have been developed that couple the expansion bus within the computer to the expansion bus inside the docking station. Because the computer expansion bus and dock expansion bus are not directly connected to one another, neither expansion bus becomes overloaded due to the docking connection.
FIG. 1 illustrates a representative conventional computer system/docking station configuration. The computer 100 generally includes a CPU coupled to a bridge logic device via a CPU bus. The bridge logic device is sometimes referred to as a xe2x80x9cNorth bridgexe2x80x9d for no other reason than it often is depicted at the upper end of a computer system drawing. The North bridge also couples to a main memory array by a memory bus. The North bridge couples the CPU and memory to the peripheral devices in the system through a PCI bus 125 or other expansion bus (such as an EISA bus). Various components that implement the PCI protocol may reside on the computer""s PCI bus 125, such as a graphics controller.
If other secondary expansion buses are provided in the computer system, another bridge logic device typically is used to coupled the PCI bus 125 to that expansion bus. This bridge logic is sometimes referred to as a xe2x80x9cSouth bridge,xe2x80x9d reflecting its location vis-xc3xa1-vis the North bridge in a typical computer system drawing. In FIG. 1, the South bridge couples the computer PCI bus 125 to an ISA bus. Various ISA-compatible devices are shown coupled to the ISA bus.
The South bridge may also support an input/output (I/O) controller that interfaces to basic input/output devices (not shown) such as a keyboard, a mouse, a floppy disk drive, and various input switches such as a power switch and a suspend switch. The I/O controller typically couples to the South bridge via a standard bus, shown as an ISA bus in FIG. 1. A low speed serial bus (not shown), which generally is a bus with only one data signal, may provide an additional connection between the I/O controller and South bridge. The I/O controller typically comprises an ISA bus interface (not specifically shown) and transmit and receive register (not specifically shown) for exchanging data with the South bridge over the serial bus.
The I/O controller generally has the capability to handle power management functions such as reducing or terminating power to components such as the floppy drive (not shown), blocking the clock signals that drive components such as the bridge devices and CPU, and initiating sleep mode in the peripheral buses. The I/O controller further assert System Management Interrupt (SMI) signals to various devices such as the CPU and North bridge to indicate special conditions pertaining to input/output activities such as sleep mode. The I/O controller typically incorporates a counter or a Real Time Clock (RTC) to track the activities of certain components such as the hard drive and the PCI bus 125, inducing a sleep mode or reduced power mode after a predetermined time of inactivity. The I/O controller may also place the computer system into a low-power mode, in which the power to all devices except the I/O controller itself shuts off completely.
The computer system also includes a bus bridge for coupling the expansion bus within the computer to an expansion bus housed in a docking station. A typical docking station 150 with a PCI bus 175 is pictured in FIG. 1 and coupled to the PCI bus 125 within the computer system. As shown, a PCI-to-PCI bus bridge device 130 couples the two PCI buses 125 and 175. An exemplary PCI-to-PCI bridge device is the 21554 PCI-to-PCI bridge manufactured by Intel Corporation.
The docking station 150 pictured in FIG. 1 also includes a South bridge logic (not shown specifically) for coupling components connected to the computer""s PCI bus 125 to other components contained within the docking station 150. Thus, as shown in FIG. 1, a South bridge logic device within the docking station couples the PCI bus 125 to various expansion buses including an ISA bus, a universal serial bus (USB), and an integrated drive electronics (IDE) bus. The docking station 150 also supports a local area network (LAN) connection such as Ethernet. In addition to the PCI signals that are provided between the computer 100 and the dock 150, various xe2x80x9csidebandxe2x80x9d within the docking station 150 must be connected to the computer system 100 during docking. These sideband signals typically connected I/O controller but may be connected to virtually any component within the computer. Examples of sideband signals include power and ground signals, interrupt signal, and I/O signals such as serial and parallel port signals, keyboard and mouse signals, and audio and video signals. Accordingly, the South Bridge logic in the docking station 150 may include dedicated I/O controllers coupled to the I/O devices and that transmit the sideband signals.
A significant problem inherent in docking relates to electrical xe2x80x9ctransientsxe2x80x9d and voltage mismatches that can occur when the connectors on the computer 100 and docking station 150 are first mated. When the opposing connectors first meet, a slight but rapid xe2x80x9cbouncingxe2x80x9d action may occur between the electrical contacts on the connector, causing the contacts to repeatedly connect and then disconnect. When opposing contact are engaged, electric current may flow through the connection. When the opposing contacts are separate, the electric current is stopped. Thus, bouncing connectors cause intermittent current flow. In addition to the bouncing problem, differences in reference voltage levels (i.e., ground levels) between the computer and docking station can produce current xe2x80x9cspikes,xe2x80x9d or large inrushes of current, when the connectors are mate. Current spikes are highly undesirable and can cause component damage and reduce battery life. Virtually all of the signals that connect the computer system to the docking station, including expansion bus signals and also sideband signals, are susceptible to electrical transients and voltage spikes during the docking procedure.
In order to avoid transient problems, early computer designs required shutting off the computer system before docking, a procedure known as xe2x80x9ccold docking.xe2x80x9d Although shutting off the computer effectively prevents the undesirable electrical problems described above, the user must power on the computer after docking and endure a lengthy and annoying reboot sequence before the computer can be used.
Recent computer systems have been capable of safely docking without completely powering down by implementing a variety of power modes, each of which may draw a different amount of electric power, depending on the state. Aside from the familiar xe2x80x9cnormalxe2x80x9d and xe2x80x9cpower offxe2x80x9d modes, in which the computer is running at full power or is turned off, other power modes include the low-power xe2x80x9csuspendxe2x80x9d and xe2x80x9csleepxe2x80x9d modes. These low-power modes generally allow the computer to operate at a reduced level of power, albeit with reduced functionality.
During suspend mode, certain hardware devices which tend to draw large amounts of power, such as the hard disk drive or display, may be powered off to save electricity. The computer often initiates suspend mode automatically when the computer has not detected action from the user for a predetermined period of time, such as keystrokes or mouse movements. Computer programs running during suspend mode typically run normally, however, and the computer wakes up the suspended devices as needed. For instance, the computer monitor may turn off or darken the if no user activity is detected for a predetermined period of time, in order to save power. If the user moves the mouse or presses a key on the keyboard, then the monitor turns back on. Similarly, the hard disk drive may spin down if no data has been read from or written to disk for a predetermined time. As soon as the user saves a file or opens a file or application program, the disk drive wakes up to handle the data transfer. Although the computer often requires a short delay to wake up suspended hardware components, the computer can save a great deal of power by suspending certain devices when they are not undergoing heavy use.
During sleep mode, nearly every device in the computer system, including the CPU, powers down; typically only the main memory and the I/O controller remain powered. As a result, computer activity ceases until the user brings the computer out of sleep mode, pressing the xe2x80x9cpower onxe2x80x9d button. Because the main memory remains powered on during sleep mode, the memory contents are preserved so that the computer returns to the same state that it was in when the sleep mode began. Sleep mode can begin automatically, usually after the computer detects no user activity for a long time, or can begin in response to command from the user. Although sleep mode offers less functionally than the suspend mode, in fact rendering the computer temporarily unusable, the sleep mode also requires relatively little power and provides a high level of battery conservation that is especially desirable in portable systems.
Early implementations of the various power modes required the computer hardware itself to monitor user activity and determine the proper power state for each device in the computer system. More recently, the Advanced Configuration and Power Interface (ACPI) specification written by Intel, Microsoft, and Toshiba has introduced the concept of managing power functions using the computer operating system. Centralizing power management within software, in contrast with the original method of hardware-based power management, allows computer manufacturers to make simpler, less expensive hardware components that do not have to manage their own power states. Instead, these devices need only to respond to power management commands from the operating system. In addition, software-based power management permits the computer system implement highly complex power management procedures that may have been difficult, if not impossible, to realize using the more decentralized hardware-based approach of the past. Software-based power management also advantageously provides the user with some level power management control.
Taking advantage of the various power modes, more recent computer designs have incorporated a xe2x80x9cwarm dockingxe2x80x9d procedure in which the computer is placed in sleep mode during the docking sequence. Because entering sleep mode causes the expansion bus to power down, the computer can be connected to the docking station during sleep mode. In one implementation, the docking station includes a docking pin which makes contact with any computer that is placed into the dock. The docking pin connects electrically to the I/O controller within the computer, providing a sideband docking signal, as illustrated in FIG. 1. Accordingly, when the user places the computer 100 into the dock 150, contact with the docking pin asserts a xe2x80x9cdockingxe2x80x9d interrupt to the processor, to notify the processor that the docking sequence is beginning. In response, the processor places the computer into sleep mode, effectively deactivating the expansion bus and sideband signals. The I/O controller may remain awake during sleep mode, however, to monitor the docking signal. The docking station 150 includes a mechanical hook for securing the computer 100. After the computer enters sleep mode, the docking station 150 grabs the computer 100 via the mechanical hook and pulls the computer 100 into the dock 150. Because the expansion bus and sideband signals are powered down during sleep mode, no electrical transient problems occur during warm docking. The docking station 150 then transmits another interrupt signal via the docking pin to notify the processor that the docking procedure has completed, and the computer 100 responds by returning to full-power mode.
A major problem with warm docking is that it can require a significant amount of time to return to full-power mode in some systems. Most computers require a relatively long time to power up, initialize, and enumerate various components, for instance. In particular, hard disk drives must undergo a rather lengthy wakeup period that requires extensive re-calibration. Consequently, warm docking can be too time-consuming for some users.
More recently, xe2x80x9chot dockingxe2x80x9d procedures have been developed that permit docking while the computer system is fully powered. In one implementation, the computer system and docking station incorporate a special docking safe circuit 135 coupled to the expansion buses. Upon detecting that a docking sequence has been initiated, the docking safe circuit 135 drives the expansion bus 125 to a docking safe state. In the docking safe state, the ground conductors of the expansion bus 125 are referenced to a common ground potential, the bus 125 is placed in a xe2x80x9cquiet,xe2x80x9d or non-transitioning, state, all bidirectional terminals of the docking station bus 175 are set to an input state, and the signaling levels of the buses 125 and 175 have the same voltage potential. A major disadvantage to this hot docking procedure is that it requires providing the specialized docking safe circuitry 135 in the computer system. Due to the increasing demands by consumers to reduce the cost, size, and power consumption of computer systems, it is generally desirable to keep the number of components within computer systems to a minimum. The docking safe circuitry thus represents cost, size, and power burdens to the manufacturer.
In addition to the operational difficulties of hot docking, the docking connectors must accommodate as many as 52 connector pins in some cases, depending on the specific features implemented by the bus. A typical PCI bus may implement cache support, ACPI support, JTAG support, parity, interrupts, and other features, for example, requiring the full array of pins. In addition, the docking signal as well as various sideband signals run between the computer and dock, further increasing the number of pins in the docking connector. Such a large number of pins requires a physically large connector, making it relatively difficult to establish a tight connection between the docking connector and the dock. Lack of a solid connection may result in a variety of problems, including excessive signal attenuation. A large docking connector also requires a large cutout on the computer chassis, reducing the structural integrity of the chassis.
Additionally, the large number of signals that an expansion bus carries introduces troublesome and often unpredictable problems with electromagnetic interference (EMI). All electrical wires emit small levels of electromagnetic radiation which can interfere with neighboring wires and with electronic components and cables which are close by. Accordingly, all commercial electronic devices must meet strict EMI emission guidelines which require costly design, testing procedures, and materials. In addition, docking buses currently are susceptible to receiving electromagnetic interference.
For the foregoing reasons, a computer system capable of performing hot docking without the need for special docking safe circuitry would simplify and expedite the docking procedure without incurring the added costs of extraneous circuitry. Such an apparatus, if devised, should permit transient-free coupling of expansion bus signals and should transfer sideband signals between the computer and docking station during normal computer operation. Such an apparatus also should facilitate a tight coupling between the computer and the dock, should generate minimal levels of EMI without requiring expensive countermeasures, and should effectively block outside EMI. Despite the apparent advantages that such a system would provide, to date, no such device provides these features.
Accordingly, a preferred embodiment of the present invention discloses a computer system and associated docking station, each comprising a separate docking bridge. Each docking bridge comprises an interface to an expansion bus, such as a PCI bus, and an interface to a hot pluggable bus, which preferably comprises an IEEE 1394 serial bus. The expansion bus interface within the computer system couples to the computer system PCI bus, and the expansion bus interface within the dock couples to the docking station PCI bus. Each docking bridge also receives sideband signals to be transferred between the computer and the dock. An IEEE 1394 bus connects between the two docking bridges to carry PCI and sideband signals from the computer to the dock and from the dock to the computer. The pair of docking bridges thus transfer data between the computer and docking station such that, together, the docking bridges appear to function as a single PCI-to-PCI (or xe2x80x9cP2Pxe2x80x9d) bridge. Thus, each docking bridge preferably implements standard PCI features such as providing ACPI configuration space and acting in both master and slave configurations.
Because the IEEE 1394 bus is hot pluggable, no docking safe circuitry is required, and the docking connection can be made during normal system operation without causing harmful bus transients on either PCI bus. Further, the PCI bus and sideband signals are transmitted over the same wires, reducing the number of signals running between the dock and the computer. In addition, the serial nature of the IEEE 1394 bus requires a relatively small number of signals, reducing the size of the docking connector and thus strengthening the chassis and enabling a firm docking connection. The use of differential signaling on IEEE 1394 bus also reduces the effects of EMI, including both EMI generated and EMI received by the docking connection.
During certain PCI bus cycles, the docking bridge within the computer system captures the values of the PCI bus signals within the computer, encapsulates the values into a serial bus packet, and transfers the values serially to the docking bridge within the expansion base. The docking bridge within the computer system includes a signal type field in each of the serial bus packets that identifies the contents of the packet as PCI signals. The docking bridge within the expansion base decodes the signal type field to verify that the packet includes PCI signals, extracts the PCI signal values from the packet, and drives the PCI bus within the dock using the PCI bus values captured in the computer. Similarly, the docking bridge within the docking station captures selected PCI bus cycles and transmits the captured bus values to the computer system. The docking station encloses the signals within a serial bus packet that includes a signal type field identifying the contents of the packet as PCI signals. The computer system, upon determining from the signal type field that the packet includes PCI signals, extracts the PCI signal values from the packet and drives the PCI bus within the computer using the received PCI bus values.
Similarly, the computer and docking station exchange sideband signals over the IEEE 1394 bus. The computer system may receive sideband signals from various internal components, including a CPU, a south bridge device, an I/O controller, and a peripheral device coupled to one of the expansion buses. The docking station may receive sidebands from the south bridge device or from any other device. The docking bridge within the computer system samples the values of sideband signals received from components within the computer, encapsulates the captured values in IEEE 1394 packets, and transmits the values to the docking station. Each packet carrying sideband signal values includes a signal type field identifying the packet as containing sideband signal values. The docking station determines that the packets contain sideband signals and drives the corresponding sideband signals within the dock. Similarly, the docking bridge within the docking station captures sideband signals received from components within the dock, encapsulates the captured values in IEEE 1394 packets, and transmits the packets to the computer along with the appropriate signal type field. The computer, upon decoding the signal type field to determine the contents of the packet, drives the associated sideband signals within the computer.
Each docking bridge comprises PCI bus interface, a signal encoder that transmits and receives sideband signals, and a packetizer that assembles and disassembles serial bus packets. The signal encoder captures received sideband signals and also receives captured control signals from the expansion bus interface. Address and data buffers are disposed between the PCI bus interface and the packetizer for storing address and data signals traveling both to and from the PCI bus. The packetizer couples to a serializer, which converts the packet data to and from serial format for transmission over the serial bus, and a parser controls operation of the packetizer and serializer. A serial bus driver, coupled to the serializer, provides a physical interface to the IEEE 1394 bus.
The expansion bus interface captures PCI bus values during selected PCI bus cycles and transfers captured address values to the address buffer, captured data values to the data buffer, and captured control values to the encoder. Upon receiving captured PCI values, the encoder creates a signal type field identifying the captured signals as PCI signals. The packetizer then combines the signal type field with the PCI control, address, and data signals into a serial bus packet and loads the packet into the serializer. The serializer provides one bit at a time to the IEEE 1394 driver, which transmits the bits over the serial bus.
Similarly, the IEEE 1394 driver receives serial data transmitted over the IEEE 1394 bus. Each received bit is supplied to the serializer, which temporarily stores the incoming serial stream and then loads the data in parallel to the packetizer. If the signal type field indicates that the packet contains PCI values, the packetizer loads the address and data signals into the address and data buffers and the control values into the encoder. The PCI interface retrieves the control, address, and data values from the encoder, address buffer, and data buffer, and drives the PCI bus with the received values. If the signal type field indicates that the packet contains sideband signals, then the packetizer loads the sideband signals into the encoder, which drives the sideband signals to the proper states.
Thus, the present invention comprises a combination of features and advantages that enable it to substantially advance the art by providing a hot dockable computer system and expansion base including a pair of docking bridges that perform the duties of a conventional docking bridge but without the drawbacks associated with prior art devices. These and various other characteristics and advantages of the present invention will be readily apparent to those skilled in the art upon reading the following detailed description of the preferred embodiments of the invention and by referring to the accompanying drawings.